Preheat your oven to 350 degrees F.
Bring a large pot of salted water to a boil. Add the macaroni and cook for 8-10 minutes or until al dente.
While the macaroni is cooking, make the cheese sauce. Melt the butter in a large saucepan over medium heat.
Whisk in the flour and cook for 1-2 minutes or until the mixture is smooth and bubbly.
Gradually whisk in the milk, stirring constantly, until the mixture is smooth.
Add the cheddar, mozzarella, and Parmesan cheeses, and stir until the cheese is melted and the sauce is smooth.
Add the garlic powder, salt, and pepper to taste.
Drain the macaroni and add it to the cheese sauce. Stir to combine.
Pour the mac and cheese into a 9x13 inch baking dish. If you're using toppings, sprinkle them over the top.
Bake the mac and cheese for 25-30 minutes or until the top is golden brown and crispy.
Let the mac and cheese cool for a few minutes before serving.