Preheat your oven to 375°F (190°C).
Cook the lasagna noodles according to package instructions. Drain and set aside.
In a large skillet, heat the olive oil over medium heat. Add the chopped onion and cook until translucent, about 5 minutes.
Stir in the minced garlic and sliced mushrooms. Cook for another 7-8 minutes until the mushrooms are tender and browned.
Add the chopped spinach to the skillet and cook until wilted, about 3 minutes. Season with oregano, salt, pepper, and red pepper flakes (if using). Remove from heat.
In a mixing bowl, combine the ricotta cheese, egg, and half of the grated Parmesan cheese. Mix well.
To assemble the lasagna, spread a thin layer of marinara sauce on the bottom of a 9x13 inch baking dish. Place 3 lasagna noodles on top.
Spread half of the ricotta mixture over the noodles, followed by half of the mushroom and spinach mixture, and then a layer of marinara sauce. Top with a third of the mozzarella cheese.
Repeat the layers: 3 more lasagna noodles, the remaining ricotta mixture, the remaining mushroom and spinach mixture, another layer of marinara sauce, and half of the remaining mozzarella cheese.
Finish with the last 3 lasagna noodles, the remaining marinara sauce, and the remaining mozzarella cheese. Sprinkle the rest of the Parmesan cheese on top.
Cover the baking dish with aluminum foil and bake for 30 minutes. Remove the foil and bake for an additional 15 minutes or until the cheese is golden and bubbly.
Allow the lasagna to cool for about 10 minutes before cutting into squares and serving.