Cut the eggplants lengthwise into 1cm thick slices. Sprinkle the slices with salt and set them in a colander to drain for 1 hour. Rinse and pat dry with paper towels.
Meanwhile, make the bechamel sauce. Heat the milk in a saucepan not quite to boiling. In a frypan, melt the butter and whisk in the flour until smooth. Turn the heat to low and gradually pour in hot milk, whisking constantly until thickened. Season with salt to taste. Remove from heat. Beat the egg yolks together and when the milk has cooled slightly, beat in the eggs.
Heat 3 tablespoons olive oil in a large frying pan. Fry the eggplant slices on both sides until lightly browned. Set aside on paper towels to drain.
Preheat the oven to 190 degrees C. Oil a 23x33cm baking dish.
Heat the remaining olive oil in the frying pan over low heat. Add the grated onion and cook until soft, about 4 minutes. Add the garlic and cook 1 minute. Increase the heat to medium-high and add the beef mince and cook until browned, about 5 minutes.
Add the allspice, cinnamon, sugar, salt and pepper to taste and the passata. Bring to a simmer and cook until the beef juices have evaporated and the mixture is thick, about 20 minutes. Add the parsley and remove from the heat. When slightly cooled, lightly beat the egg white and stir it in.
Arrange a layer of eggplant in the baking dish. Cover with the meat mixture and sprinkle over 1/3 of the cheese. Top with remaining eggplant and another 1/3 of the cheese. Evenly pour over the bechamel sauce and top with remaining cheese.
Bake 45 minutes to an hour, or until the top is golden. Let rest for 20 minutes then serve!