Preheat your oven to 350°F (175°C). Grease a 9x13-inch baking dish with butter and set aside.
Spread the bread cubes on a baking sheet and toast in the oven for 10-12 minutes until slightly dried but not browned. Transfer to the prepared baking dish.
In a large mixing bowl, whisk together the milk, heavy cream, eggs, sugar, vanilla extract, cinnamon, nutmeg, and salt until smooth and fully combined.
Pour the custard mixture evenly over the bread cubes, pressing down gently with a spatula to ensure all pieces are submerged. Let rest for 30 minutes at room temperature so the bread absorbs the custard.
Drizzle the melted butter over the top of the soaked bread. Bake uncovered for 45-50 minutes, until the top is golden brown and the center jiggles only slightly when gently shaken.
Remove from the oven and let cool for 10 minutes before serving. The pudding will continue to set as it cools. Serve warm with your favorite toppings.