Bring a large pot of salted water to a boil. Add the spinach and cook for 2 minutes. Drain in a fine mesh strainer, pressing with a large spoon to release as much water as possible. Finely chop and set aside.
In a large skillet, melt 1 tablespoon of the butter over medium-high heat. Add the shallots and garlic and cook, stirring, for 1 minute. Add the mushrooms, 1/4 teaspoon each of the salt and black pepper, and cook, stirring, until the mushrooms are tender and have given off their liquid, about 5 minutes. Remove from the heat and let cool.
To make the bechamel sauce, in a large saucepan, melt the remaining 4 tablespoons butter over medium heat. Add the flour and cook, stirring with a wooden spoon, to make a light roux, about 2 minutes. Whisking constantly, slowly add the milk and continue to cook, stirring occasionally until thickened, 2 to 3 minutes. Add the remaining 1/2 teaspoon salt, 1/4 teaspoon black pepper, the nutmeg, and 1 cup of the Parmesan and cook, stirring, until thickened, about 2 minutes. Remove from the heat.
In a bowl, combine the ricotta, fontina, and mozzarella cheeses. Fold in 1/4 cup of the bechamel sauce.
Across the bottom of a deep-dish lasagna pan (13 by 9-inches), spoon enough bechamel sauce to cover (about 1/2 cup). Then add 1/4 of the mushrooms and sprinkle 1/4 of the spinach across. Arrange a layer of cooked noodles side-by-side across the sauce. Spread another layer of bechamel over the noodles and top with more spinach, mushrooms, and cheese. Repeat layering with sauce, noodles, spinach, and cheese 2 more times, ending with noodles on top. Sprinkle the remaining 1 1/2 cups of Parmesan over the top, cover tightly with aluminum foil, and bake until the noodles are tender and the lasagna is hot and bubbly, about 30 minutes. Uncover and continue baking until golden brown on top, about 10 minutes.
Let rest for 10 to 15 minutes before serving. Serve hot.