01 - Preheat oven to 350°F if preparing the baked version with topping.
02 - Bring a large pot of salted water to a boil. Cook elbow macaroni according to package directions until al dente. Drain well and set aside.
03 - In a saucepan, melt butter over medium heat. Whisk in flour and cook for 1 minute, stirring constantly, to form a smooth roux.
04 - Gradually whisk in whole milk. Simmer, whisking constantly, until the sauce thickens and coats the back of a spoon, about 4 to 5 minutes.
05 - Reduce heat to low. Stir in both grated cheddar cheeses and Dijon mustard until completely melted and smooth. Season with salt and black pepper to taste.
06 - Fold the cooked macaroni into the cheese sauce, stirring gently until every piece is evenly coated.
07 - For a crispy baked version, transfer the mixture to a greased baking dish. Combine breadcrumbs, melted butter, and grated Parmesan, then sprinkle evenly over the top. Bake for 15 to 20 minutes until the topping is golden and bubbling.
08 - Let rest for 2 to 3 minutes before serving hot.