Grease a 9×13-inch baking dish with butter to prevent sticking.
Arrange the bread evenly in the dish without packing too tightly.
In a large bowl, whisk together eggs, milk, cream, sugars, vanilla, cinnamon, nutmeg, and salt until smooth.
Pour the custard evenly over the bread and gently press down so all pieces soak the mixture.
Cover the dish and refrigerate for at least 2 hours or overnight.
Preheat the oven to 350°F (175°C). Let the casserole sit at room temperature for 20–30 minutes before baking.
Prepare the streusel topping by mixing flour, brown sugar, cinnamon, and salt. Add butter and mix until crumbly.
Sprinkle the topping evenly over the casserole.
Bake uncovered for 40–45 minutes until the top is golden and the center is set.
Let it rest for 5–10 minutes before serving. Serve warm with maple syrup or fresh berries.