Bring a large pot of water and salt to boil. Add eggplant slices. Cook until softened, about 4-5 minutes. With slotted spoon, remove eggplant slices and drain on paper towel.
Meanwhile, in a medium saucepan, sauté onion and garlic in 2 tablespoons 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 tomato mixture is cooking, in a large skillet add remaining 2 tablespoons of olive oil and cook 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 slices don't stick.) Remove eggplant slices to a platter and season with salt and pepper.
Assemble casserole. In a approx. 9 X 11 inch casserole dish, spoon a few tablespoons of tomato mixture over bottom of dish. Next, add slices of eggplant. Stir ricotta to soften, then dollop and gently spread half of the container over the eggplant.
Sprinkle with 1 cup of mozzarella cheese. Repeat process with second layer. For the top, spread the remainder of tomato mixture, cup of mozzarella and cup of grated Parmesan cheese.
Bake at 350 for about 20-25 minutes. (Cover with foil if top becomes to browned.) When casserole is done, remove from oven and let stand about 15 minutes before serving. Casserole can be frozen once cooked and thoroughly cooled.