Cook the Pasta:
Bring a large pot of salted water to a boil.
Add macaroni and cook until al dente, about 7–8 minutes.
Drain and set aside.
Make the Roux:
In a medium saucepan, melt butter over medium heat.
Add flour and whisk constantly for about 1–2 minutes, until bubbly and lightly golden (this is the roux, which thickens the sauce).
Make the Cheese Sauce:
Gradually whisk in the warm milk and cream.
Cook, stirring frequently, until the sauce thickens slightly (about 4–5 minutes).
Lower the heat and stir in garlic powder and mustard powder (if using).
Add shredded cheeses in batches, stirring until fully melted and smooth.
Season with salt and pepper to taste.
Combine Pasta and Sauce:
Stir the drained macaroni into the cheese sauce.
Mix well until evenly coated.
Serve or Bake (Optional):
For stovetop mac and cheese:
Serve immediately, creamy and hot.
To bake:
Preheat oven to 375°F (190°C).
Pour the mac and cheese into a greased 9x13-inch baking dish.
Mix breadcrumbs with melted butter and Parmesan. Sprinkle on top.
Bake uncovered for 15–20 minutes until bubbly and golden on top.