Wash the cauliflower thoroughly under cold water and cut it into small florets.
Bring a large pot of salted water to a boil. Add the elbow macaroni and cook until al dente, about 7-9 minutes. In the last 3 minutes of cooking, gently add the cauliflower florets. Drain the pasta and cauliflower together.
In the same pot, melt the unsalted butter over medium heat. Whisk in the all-purpose flour and cook for about 1 minute. Gradually whisk in the whole milk, stirring until thickened, about 5-7 minutes. Stir in garlic powder, onion powder, mustard powder, salt, black pepper, and cayenne pepper.
Remove the pot from heat and stir in the shredded sharp cheddar cheese and half of the grated Parmesan cheese until melted. Fold in the cooked macaroni and cauliflower.
Pour the mixture into a greased 2-quart baking dish. Sprinkle breadcrumbs and remaining Parmesan cheese on top. Bake at 350°F for 20-25 minutes until bubbly and golden. Let cool before serving.