For the bechamel: In a large saucepan over medium heat, add the butter and let it melt. Add the flour and stir until it is incorporated in the butter. Cook, whisking constantly, until there are no lumps, about 2 minutes. Add the milk, whisking often, and cook the mixture until thick enough to coat the back of a spoon, 5 to 6 minutes. Season with the nutmeg, salt and white pepper to taste and set aside.
For the veggie mixture: In a large skillet over medium-high heat, add the olive oil and allow it to get nice and hot. Add the pepper, zucchini and onion and cook until they have softened and developed some color, 4 to 5 minutes; remove to a plate.
Add a touch more oil (if needed) and allow it to get hot, and then add the mushrooms. Cook, stirring occasionally, until they have cooked down, 4 or 5 minutes. Reduce the heat to medium and add the garlic along with the partially-cooked pepper, zucchini and onion. Season with salt and white pepper to taste and cook 5 minutes. Stir in the spinach and set the mixture aside.
To assemble and bake: Preheat your oven to 350 degrees F. Ladle about one-third of the bechamel in a 13-by-9-inch casserole dish and set aside.
Cook the pasta in salted boiling water for about 7 minutes (about 2 minutes less than the package instructions suggest). Drain well and return to the hot pot.
Add the cooked veggies to the pasta, along with the remaining bechamel and 1 cup of the fontina and 1/4 cup of the Parmigiano. Transfer to your prepared pan, cover with foil and bake for 25 minutes.
Increase the oven temperature to 400 degrees F, remove the foil and sprinkle the top with the remaining cup of fontina and 1/4 cup of Parmigiano. Place it back in the oven and bake until the top is golden brown and bubbly, an additional 15 to 20 minutes.
Allow to cool for about 15 minutes before serving.
Like my Nonna (grandmother), I prefer to bake this dish in a metal pan so the edges get super crispy. Sometimes I even use a cake pan or a small roasting pan, but a 13-by-9-inch baking dish will work as well: It will just get crispy on the top and not on the sides.