Bring a large pot of water and salt to boil. Add eggplant slices. Cook until softened (about 4-5 minutes). With a slotted spoon, remove the eggplant slices and drain on a paper towel. Meanwhile, in a medium saucepan, sauté the onion and garlic in 2 tbsp olive oil and butter until soft and golden-brown. Add mushrooms and cook for about 3-4 minutes. Add crushed tomatoes, tomato paste, bay leaves, basil, and crushed red pepper flakes, stirring to combine. Simmer for 20 minutes, stirring occasionally. While the tomato mixture is cooking, in a large skillet, add the remaining 2 tbsp of olive oil and cook the eggplant slices over medium heat until lightly browned on both sides (about 1-2 minutes per side). You may have to work in batches and add more oil so the slices don’t stick. Remove the eggplant slices to a platter and season with salt and pepper. Assemble the casserole. In an approximately 9″ x 11″ casserole dish, spoon a few tablespoons of the tomato mixture over the bottom of the dish. Next, add slices of the eggplant. Stir the ricotta to soften it, then dollop and gently spread half of the container over the eggplant. Sprinkle with 1 cup of mozzarella cheese. Repeat the process with the second layer. For the top, spread the remainder of the tomato mixture, cup of mozzarella, and cup of grated parmesan cheese. Bake at 350ºF for about 20-25 minutes (cover with foil if top becomes too browned). When the casserole is done, remove from the oven and let it stand for about 15 minutes before serving. The casserole can be frozen once cooked and thoroughly cooled.