Prepare middle layer first. Chop onion and mince garlic. Sauté in olive oil in large skillet until soft. Add beef and lamb. Brown over medium heat and spoon out any extra fat. Add wine to hot skillet and scrape brown bits to incorporate flavour. Add crushed tomatoes, tomato paste, oregano, cinnamon, cloves, nutmeg, bay leaf, parsley and salt and pepper. Simmer for an hour, stirring occasionally, until flavours are well incorporated and sauce is thickened and reduced.
Meanwhile, peel or partially peel eggplant. Slice into 1/2 inch rounds. Lay on paper towel and sprinkle with salt. Allow to sit for 30 minutes to release liquid.
Prepare bottom layer next. Heat a second wide skillet to medium and add half of the olive oil. Fry slices until browning on both sides. Drain on fresh paper towel. Arrange in bottom of oiled or buttered 9 x 13 baking dish, overlapping if necessary to cover entire bottom.
Peel and slice potatoes. Add remaining olive oil to skillet and fry until browned on each side. Drain on paper towel and layer over the eggplant using the same overlapping method.
Pour meat sauce over the vegetable layer. Preheat oven to 350 degrees and ensure rack is set at middle position.
Prepare top layer by heating flour and butter in a saucepan and stir until blended and bubbling. Heat milk and add in small amounts, whisking well until incorporated. Allow to simmer until thickened. Season with nutmeg, salt and white pepper. Remove from heat. Add grated Parmesan cheese and stir until melted. Allow to cool slightly.
Separate 3 eggs, reserving whites for another use. Whisk yolks until smooth. Add a very small amount of white sauce to yolks, stirring well. Add yolk mixture slowly to white sauce, whisking well until blended.
Pour sauce over meat mixture. Grate additional Parmesan cheese over top.
Bake for 1 hour until bubbling at edges and top is browning. Use convection setting in last few minutes if desired.
Allow to rest for at least 15 minutes before serving.