Preheat the oven to 375°F (190°C) and lightly grease a 9x13-inch baking dish.
Bring a large pot of salted water to a boil and cook the rotini until al dente. Drain and set aside.
Cook the chopped bacon in a large skillet over medium heat until crispy. Transfer to a paper towel-lined plate, leaving about 1 tablespoon of bacon drippings in the pan.
Add the butter to the skillet. Once melted, whisk in the flour and cook for 1 minute.
Slowly whisk in the milk and heavy cream until smooth.
Simmer for 3–5 minutes until slightly thickened.
Stir in 2½ cups of cheddar cheese, Parmesan, garlic powder, onion powder, smoked paprika, and black pepper. Stir until completely melted.
Fold the cooked pasta and most of the bacon into the cheese sauce, reserving a little bacon for topping.
Transfer the mixture to the prepared baking dish.
Sprinkle the remaining cheddar cheese and reserved bacon evenly over the top.
Bake for 20–25 minutes until bubbly and the cheese is melted.
Broil for 2–3 minutes if you'd like a lightly browned top.
Let the casserole rest for 5 minutes before garnishing with fresh parsley and serving.