Preheat your oven to 350°F (175°C).
In a large pot, bring salted water to a boil. Add elbow macaroni and cook according to package instructions until al dente. Drain and set aside in a large mixing bowl.
In the same pot, melt the butter over medium heat. Once melted, whisk in the flour and cook for about 1 minute until lightly golden.
Gradually add the milk, whisking constantly to avoid lumps. Continue to whisk and cook until the mixture thickens, about 3-5 minutes.
Reduce heat to low and stir in the cheddar, mozzarella, and Parmesan cheeses. Mix until smooth and melted.
Add garlic powder, onion powder, and season with salt and pepper to taste.
Combine the cheese sauce with the cooked macaroni in the large mixing bowl, stirring until well coated.
Pour the mac and cheese mixture into a greased baking dish. If desired, sprinkle breadcrumbs on top for added crunch.
Bake in the preheated oven for 20 minutes or until the top is golden and bubbly.
Remove from the oven and let it rest for a few minutes before serving.