Cook the elbow macaroni according to package instructions until al dente. Drain and set aside.
In a large saucepan over medium heat, melt the butter. Once melted, whisk in the flour and cook for about 1 minute until bubbly.
Gradually whisk in the whole milk, stirring constantly until the mixture thickens and begins to bubble, about 5-7 minutes.
Reduce the heat to low and add the sharp cheddar cheese, Monterey Jack cheese, garlic powder, onion powder, salt, black pepper, and paprika. Stir until the cheeses are fully melted and the sauce is smooth.
Add the cooked macaroni to the cheese sauce and stir until well combined.
Transfer the mac and cheese to a greased baking dish and sprinkle the grated Parmesan cheese on top.
Broil in the oven on high for 2-3 minutes until the top is golden and bubbly. Keep a close eye to prevent burning.
Remove from the oven and let it cool for a few minutes before serving.