Preheat the oven to 350°F (175°C). Prepare a 9x13-inch baking dish by lightly greasing it with butter or nonstick spray.
In a large pot, bring salted water to a rapid boil. Add the elbow macaroni and cook until just shy of fully tender — about one minute less than the time listed on the package. Drain and set aside.
Melt the butter in a large saucepan set over medium heat. Whisk in the flour and cook, stirring continuously, for 1 to 2 minutes, until the mixture forms a light roux with a slightly golden hue and begins to bubble.
Gradually pour in the milk and heavy cream while whisking to prevent lumps. Let the mixture simmer gently, whisking often, until it thickens slightly — this should take about 4 to 6 minutes. Add the garlic powder, mustard powder, paprika, salt, and pepper, stirring to combine.
Lower the heat to low. Add in the shredded cheddar, mozzarella, and Parmesan, stirring until the cheeses are fully melted and the sauce is smooth and cohesive.
Fold the drained macaroni into the cheese sauce, ensuring each piece is evenly coated.
Transfer the mac and cheese mixture into the prepared baking dish, spreading it out into an even layer.
For the optional topping, stir together the panko, melted butter, and smoked paprika. Sprinkle this mixture evenly over the top of the macaroni.
Place the dish in the oven and bake uncovered for 20 to 25 minutes, or until the cheese sauce is bubbling and the top is lightly browned. For a more pronounced golden crust, broil during the final 2 to 3 minutes of baking, watching closely to prevent burning.
Remove from the oven and allow the dish to rest for 5 to 10 minutes before serving, to allow the cheese to set slightly and the flavors to meld.