Preheat your oven: Start by preheating your oven to 350°F (175°C).
Cook the macaroni: In a large pot, boil salted water and add 8 oz of elbow macaroni. Cook until al dente (about 7-8 minutes), then drain and set aside.
Make the roux: In a medium saucepan, melt 2 tbsp of butter over medium heat. Whisk in 2 tbsp of all-purpose flour and cook for about 1 minute until bubbly but not browned.
Add the milk: Gradually stir in 2 cups of milk, continuing to whisk. Cook for 5-7 minutes, stirring constantly, until the mixture thickens.
Incorporate the cheese: Remove the saucepan from heat and add 2 cups of shredded sharp cheddar cheese and 1 cup of shredded mozzarella cheese. Stir until the cheeses are completely melted. Then, mix in 1 tsp of mustard powder (if using), ½ tsp of garlic powder, and ½ tsp of onion powder. Season with salt and pepper to taste.
Combine pasta and sauce: In a large bowl, combine the cooked macaroni with the cheese sauce, mixing well to ensure that all the pasta is coated.
Prepare the topping: In a small bowl, mix 1 cup of breadcrumbs with 2 tbsp of melted butter and ½ tsp of paprika (if using). Toss until the breadcrumbs are well coated.
Assemble the dish: Pour the macaroni and cheese mixture into a greased baking dish. For extra cheesiness, sprinkle some additional cheese on top, then spread the breadcrumb mixture evenly over the top.
Bake: Place in the preheated oven and bake for 25-30 minutes, or until the top is golden brown and the cheese is bubbly.
Serve: Once done, remove from the oven and let cool for a few minutes. Serve warm, and enjoy your Baked Macaroni and Cheese!