In a large pot, melt the unsalted butter over medium heat.
Whisk in the all-purpose flour to create a roux; cook for 1-2 minutes until lightly golden.
Add garlic powder, ground mustard, paprika, onion powder, salt, and pepper; stir to combine.
Slowly whisk in the whole milk and chicken broth, stirring constantly until smooth.
Bring the mixture to a simmer.
Add the uncooked elbow macaroni to the pot.
Cook, stirring frequently, for about 8-10 minutes or until the pasta is tender and the sauce has thickened.
Reduce heat to low and stir in mozzarella, sharp Cheddar, and Parmesan cheeses until melted and creamy.
Adjust seasoning to taste.
Serve immediately with optional hot sauce for a little kick.