For the topping:
Mix the panko, Parmesan, salt and pepper together in a small bowl, set aside.
For the pasta:
- In a large pot of boiling salted water, cook the pasta for 10 minutes (it should still be firm as it will continue to cook in the sauce). Drain and set aside, reserving about 1 cup of the pasta-cooking water.
- While the pasta cooks, heat a 3 1/2-quart Dutch oven over medium-high heat. Add the olive oil, mushrooms, thyme, 1/2 teaspoon salt and the shallots. Cook, stirring occasionally, until softened and beginning to brown. Remove the cooked mushrooms to a plate and drizzle with the truffle oil.
- Preheat the broiler to high.
- Reduce the heat to medium under the Dutch oven. Add the butter and flour and mix with a wooden spoon to form a paste. Continue to cook, stirring constantly, for another minute. Slowly whisk in the milk. Bring this mixture to a simmer, whisking occasionally to prevent sticking on the bottom. Simmer for 5 minutes. Whisk in the gruyere, fontina and Parmesan and stir until fully incorporated.
- Add the pasta, reserved pasta water, cooked mushroom mixture, 3/4 teaspoon salt and the pepper to the cheese sauce and fold everything together. Top with the breadcrumb mixture and drizzle with the olive oil and truffle oil. Broil until the breadcrumbs are golden brown and the sauce is bubbling, about 8 minutes.
- Allow the mac and cheese to sit for 10 minutes before serving. Serve hot.