Position a rack in the center of the oven; preheat the broiler.
Peel the skin off of two sides of the eggplant and trim off the top. Slice lengthwise into long, thin planks about 1/4- to 1/2-inch thick then dice into small pieces.
Arrange in a single layer on a kitchen towel and sprinkle with salt.
Place the cubed potatoes in a medium pot and add enough cold water to cover by an inch. Bring to a boil, salt the water and cook until tender, 10-12 minutes.
Meanwhile, in a large, deep skillet, heat the olive oil, two turns of the pan, over medium- high to high. Add the meat and cook until browned, breaking it up with a spoon, about 5-6 minutes. Add the oregano or marjoram, crushed red pepper, bay leaf, allspice and cinnamon; season with salt and pepper.
Pat the eggplant dry and add to the meat along with the onion and garlic. Cook, stirring occasionally, until the vegetables are softened, 7-8 minutes. Add the tomato paste; stir one minute. Add the wine and stir until evaporated, about a minute. Add the stock, reduce heat to low and simmer until the meat mixture thickens, about 3 minutes.
Drain the potatoes and return them to the hot pot. Add in the crème fraîche and milk; mash until smooth. Add the nutmeg and season. Stir in the egg yolk.
Discard the bay leaf from the meat mixture and transfer to a medium casserole dish. Top with the mashed potatoes and smooth the top with a spatula. Sprinkle with cheeses and broil until browned and bubbling, 3-4 minutes. Serve from the dish into shallow bowls.