Preheat oven to 375°F (190°C). Grease a 9×13-inch baking dish.
Cook pasta in salted boiling water until al dente. Drain and set aside.
In a large saucepan, melt butter over medium heat. Whisk in flour and cook for 1–2 minutes to form a roux.
Gradually whisk in warm milk and cream, stirring constantly until smooth and thickened (about 5 minutes).
Stir in Dijon, garlic powder, nutmeg, salt, and pepper.
Remove from heat and stir in cheddar and Gruyère until melted and creamy.
Add pasta to the sauce and mix well. Transfer mixture to the prepared baking dish.
For topping: Mix breadcrumbs, Parmesan, and melted butter. Sprinkle evenly over pasta.
Bake for 25–30 minutes, or until the top is golden and bubbling.
Let cool for 5–10 minutes before serving.
