Cook the elbow macaroni according to package instructions; drain and set aside.
In a large saucepan, melt the butter over medium heat.
Stir in the flour, whisking constantly for about 2 minutes.
Gradually add the milk, continuing to whisk until the mixture thickens.
Add garlic powder, onion powder, salt, and pepper.
Stir in the cheddar, mozzarella, and Parmesan cheeses until melted and smooth.
Combine the cooked macaroni with the cheese sauce, mixing well.
Pour the mixture into a greased baking dish.
Bake at 350°F (175°C) for 20 minutes or until bubbly.
Serve hot, garnished with extra cheese if desired.