Shred all three blocks of cheese and combine them in a large mixing bowl, tossing until evenly blended. Divide the cheese mixture into two equal portions and set one aside for layering.
Bring a large pot of generously salted water to a rolling boil and cook the cavatappi until al dente, about 7–8 minutes. Reserve 1/2 cup of pasta water, then drain and set aside.
Preheat the oven to 350°F (175°C). Lightly grease a 9x13-inch baking dish with butter or cooking spray and set aside.
Melt the butter in a large heavy-bottomed saucepan over medium heat. Add half of each seasoning (smoked paprika, garlic powder, salt, pepper), stir for 30 seconds, then whisk in the flour and cook for 2–3 minutes until the mixture is paste-like and smells slightly nutty.
Slowly stream in the evaporated milk while whisking constantly, then cook until thickened and bubbling, about 3–4 minutes. Reduce heat to medium-low, pour in the heavy cream gradually, add the remaining seasonings, and whisk in the Dijon mustard until the sauce is smooth and thick.
Reduce heat to low and add the first portion of shredded cheese in small handfuls, whisking each addition until fully melted before adding more. The finished sauce should be silky, glossy, and creamy.
Add the drained cavatappi to the cheese sauce and fold gently until every piece of pasta is fully coated. If the mixture is too thick, add a splash of reserved pasta water to loosen.
Pour half the pasta mixture into the prepared baking dish and spread evenly, then sprinkle half of the reserved shredded cheese over it. Add the remaining pasta mixture on top and cover with the rest of the shredded cheese.
Bake uncovered at 350°F (175°C) for 25–30 minutes until the cheese is melted, the edges are bubbling, and the dish is heated through.
Switch to the high broiler setting and broil for 2–3 minutes, watching closely, until the top is golden brown. Let rest for 5 minutes before serving.