Preheat oven to 375 degrees F (190 degrees C). Grease a 9x13 inch baking pan.
Bring a large pot of lightly salted water to a boil. Add the cavatappi, penne and shells and cook for 8 to 10 minutes or until al dente. Drain and set aside.
In a medium pot, melt the butter over medium heat. Whisk in the flour until smooth. Gradually whisk in the milk, garlic powder, onion powder and nutmeg. Bring to a boil, stirring constantly. Reduce heat and simmer until thickened, about 5 minutes.
Remove the pot from the heat and stir in the cheddar cheese, gruyère cheese, Parma ham and parsley until cheese is melted. Season with salt and pepper to taste.
Add the cooked pasta to the cheese mixture and stir to combine. Pour the mixture into the prepared baking pan.
Bake in the preheated oven for 30 minutes, or until the top is golden brown.