Preheat your oven to 350°F (175°C).
Cook the elbow macaroni according to package instructions until al dente. Drain and set aside.
In a large saucepan, melt the butter over medium heat. Once melted, whisk in the flour and cook for about 1 minute until bubbly.
Gradually whisk in the milk, stirring constantly until the mixture thickens, about 5-7 minutes.
Remove the saucepan from heat and stir in the cheddar cheese, mozzarella cheese, garlic powder, onion powder, paprika, salt, and pepper until the cheese is fully melted and the sauce is smooth.
Combine the cooked macaroni with the cheese sauce, mixing well to coat.
Pour the mac and cheese mixture into a greased 9x13 inch baking dish. If using, sprinkle breadcrumbs and Parmesan cheese evenly over the top.
Bake in the preheated oven for 25-30 minutes, or until the top is golden and bubbly.
Let it cool for 5 minutes before serving.