Preheat oven to 350 degrees F.
In a large pot of boiling salted water, add rotini and ook for 6 to 8 minutes until tender. Drain and set aside.
In a saucepan over medium-high heat, melt 2 tablespoons of butter and add the onions. Add the flour and pepper and mix until mixture is pasty and forms a roux. Whisk milk into pan incorporating the roux. Bring to a simmer over low heat and allow to thicken; about 5 minutes. Once thickened, whisk in the cheeses. Add the pasta and mix until the pasta is well coated. Fold in spinach, sun-dried tomato oil, and sun-dried tomatoes.
In a small saucepan, melt remaining 2 tablespoons of butter over medium heat. Once melted, turn heat off and add bread crumbs and paprika. Mix well to combine.
Pour rotini into a casserole dish large enough to hold the pasta. Sprinkle the top with bread crumbs and place in oven for 15 to 18 minutes or until brown and bubbling.
Recipe courtesy Aaron McCargo Jr.