Preheat the oven to 350 degrees F. Grease a 9x13-inch baking dish.
Combine all three shredded cheeses in a bowl, then move half into a second bowl. Set both aside.
Stir together the garlic powder, smoked paprika, salt and pepper in a small bowl.
Cook the cavatappi in salted water: about 6 minutes (al dente) if making ahead, or 8 minutes if eating right away. Drain and set aside.
Melt the butter in a large skillet over medium-low heat. Add HALF of the seasoning and stir for about 30 seconds. Add the flour and stir until it becomes a paste, about 2 to 3 minutes.
Whisk in the coconut milk (or heavy cream) for a couple of minutes until smooth. Reduce the heat to low, then add the soy milk (or evaporated milk), the rest of the seasoning and the Dijon, and stir to combine.
Add ONE bowl of cheese to the sauce a handful at a time, letting each handful melt before adding more. Save the second bowl for layering.
Stir in the pasta until it's fully coated in the cheese sauce.
Add half of the pasta to the baking dish, then half of the remaining cheese. Repeat with the rest of the pasta and cheese.
If making ahead, stop here. Cover and refrigerate until you're ready to bake.
Bake until the cheese is melted and bubbly, about 25 to 30 minutes.
Broil until the top is golden brown, about 2 minutes. Enjoy immediately!