Add water and salt into a large pot and boil. Cook the pasta using the directions on the package. Drain and set aside.
In a Dutch oven or large pot, melt the butter over medium heat. Once melted, whisk in the flour. Cook for a couple of minutes, stirring frequently until the roux turns a light golden brown.
Gradually add the milk, whisking constantly to prevent lumps and burning. Continue cooking, stirring frequently, until the mixture thickens, about 4-5 minutes.
Stir in Dijon mustard, garlic powder, onion powder, salt, and pepper.
Gradually add 2 cups of the shredded cheddar, and all the Gruyère and fontina cheeses, whisking until fully melted and smooth.
Add the cooked pasta to the cheese sauce, mixing to coat the pasta evenly. If the sauce is slightly too thick, you can add a splash of milk to loosen it up.
Preheat your oven to 375°F (190°C). Transfer half of the macaroni into a greased 9x13 baking dish. Add the pepper jack slices over the top in a single layer.
Add the remaining macaroni over the top and add the remaining half cup of cheddar cheese.
Bake for 15-20 minutes or until the top is golden brown and crispy. If you'd like a more intense crunch, you can broil for 2-3 minutes at the end, watching carefully. Remove from the oven and let cool for 5 minutes. Serve hot and enjoy.