Preheat oven to 400 degrees F.
Place a large skillet, over medium heat, with the olive oil. Add the diced shallots and sauté on medium heat for about 2-3 minutes. Add the mushrooms and sauté until over medium-high heat until caramelized, about 10 minutes. Add the garlic and spinach and stir to combine. Season with salt and pepper and set aside.
In a small pot, melt the butter on medium heat. Add the flour and whisk for a few minutes until flour is golden. Add the milk and continue to whisk. Bring the mixture to a boil, add 4 ounces of the mozzarella and stir constantly for 3 minutes until the cheese has melted. Season with salt, nutmeg and pepper. Remove the pot from the heat and set aside.
Grease a large 8x12 inch pan. Pour 1/2 cup of the bechamel sauce evenly on the bottom of the pan. Lay down one layer of no-boil pasta sheets. Place teaspoon sized dollops of ricotta on top of the pasta. Spread out the 1/2 of the mushroom mixture, drizzle 1/2 cup of bechamel, sprinkle 1/4 cup of Parmesan, and 4 ounces of the fresh mozzarella. Repeat, so you have 2 layers. Top the last layer of pasta with the remaining bechamel, and spread it evenly on top. Add the final 1/4 cup of Parmesan and remaining mozzarella.
Bake covered tightly with foil in the oven for 40 minutes or until hot and bubbly. Remove foil and bake uncovered until top is golden, about 10 more minutes. Let rest for 10-15 minutes before serving.