For the meat sauce: Heat the olive oil in a large, wide pot and saute the onions until soft, 8 to 10 minutes. Add the mushrooms and garlic and meat and stir until the meat takes on some color, about 8 minutes. Add the tomatoes, spices, wine, salt, and pepper. Bring to a boil, reduce the heat to low, cover, and simmer until the sauce is thick, 1 1/2 to 2 hours. (You may need to add a little water to the sauce in the beginning, so that there is enough liquid to bring to a boil.) The sauce may be prepared 1 to 2 days ahead of time and refrigerated.
For the bechamel: Heat the butter in large saucepan over medium heat. When it melts and is bubbly, add the flour. Whisk until the flour begins to turn a light golden color. (Be careful it doesn't get too much color.) Pour in the milk and whisk until thick. This might take 15 to 20 minutes. Season with salt, pepper, and nutmeg. Remove from the heat and vigorously whisk the yolks into the hot bechamel. Add the cheeses and whisk until smooth. Set aside, covered with a kitchen towel to prevent a skin from forming on the top of the sauce. The sauce may be made several hours ahead, reheated, and thinned as needed.
For the vegetables: Preheat the oven to 350 degrees F.
Place the eggplants in one layer on an oiled sheet pan. Brush the top with olive oil. (It is best to use sheet pans with a perforated rack, to let the steam circulate around the vegetables as they bake.) Bake until soft, about 12 minutes. Remove. Repeat with the remaining eggplants slices until all are cooked to tender but al dente. They should not fall apart.
In a large, heavy, nonstick skillet, heat 2 tablespoons of olive oil and saute the zucchini slices, turning once. Do this in batches if necessary and replenish the oil as needed. Remove and blot dry on paper towels.
Remove the potatoes from the water and blot dry with paper towels. Heat 3 to 4 tablespoons olive oil in a large nonstick skillet and saute the potatoes over medium heat for a few minutes, just to soften but not to color. You will need to do this in batches. Set aside on platters lined with paper towels.
To assemble: Spread about 3 tablespoons olive oil on the bottom of a large, deep baking pan (we use hotel pans at the restaurant). Spoon the crushed tomatoes on the bottom of the pan. Place the potato slices in a single layer over the tomatoes. Season with salt and pepper. Place a layer of eggplant on top and season lightly with salt and pepper.
Mix 6 tablespoons of the bechamel into the meat sauce. (If the bechamel is cold from having been made in advance and refrigerated, warm it slightly and loosen it up with a little additional milk, if necessary.) Spread about 1/3 of the meat sauce over the eggplant slices. Spread a layer of zucchini, season with salt and pepper, and then a layer of meat sauce. Finish with a layer of eggplant slices, salt and pepper, and the last of the meat sauce, spreading evenly on top. Pour the remaining bechamel over the top, spreading evenly with a spatula. Bake the moussaka, uncovered, until the bechamel is set and lightly golden, 45 to 55 minutes. Remove, cool, and cut into serving pieces.
This recipe was provided by a chef, restaurant or culinary professional. It has not been tested for home use.