Préchauffer le four à 450oF (230oC). Préparer 2 plaques de cuisson de papier cuisson.
Étaler les aubergines sur l’une des plaques, badigeonner d’huile et saupoudrer de sel. Étaler les pommes de terre huilées et salées sur l’autre plaque. Cuire ensemble au four en plaçant les pommes de terre sur la grille inférieure. Cuire 25-30 minutes. Changer les plaques de grille à mi-cuisson pour uniformiser. Laisser refroidir sur les plaques.
Préchauffer le four à 350oF (180oC).
À feu moyen, ajouter de l'huile dans une grande poêle et cuire l'oignon jusqu'à ce qu'il soit translucide. Cuire la viande hachée à feu moyen-vif pendant 10 minutes. Ajouter l’eau, la pâte de tomate, les épices, le sel et le poivre et bien mélanger. Laisser mijoter pendant environ 10-12 minutes jusqu'à ce que le liquide soit quasiment entièrement réduit.
Dans une casserole, faire fondre le beurre à feu moyen. Ajouter la farine et cuire en remuant pendant 1 minute à l’aide d’un fouet. Verser le lait, ajouter la muscade, puis porter à ébullition en fouettant constamment jusqu’à épaississement. Retirer du feu, assaisonner de sel et de poivre, puis laisser tiédir. Incorporer ensuite le parmesan râpé et les œufs battus en fouettant sans cesse jusqu’à obtenir une sauce lisse et homogène.
Graisser les côtés et le fond d'un plat à gratin avec de l'huile.
Recouvrir le fond entièrement avec une couche d’aubergines en les chevauchant si besoin est pour assurer une couverture complète. Ajouter une couche de pommes de terre et verser le mélange de viande. Recouvrir la viande avec les tranches de pommes de terre et ensuite avec le reste d’aubergines qui ne doivent pas dépasser la hauteur du plat, pour éviter que la béchamel ne déborde.
Verser la sauce béchamel dans le plat à gratin pour couvrir complètement. Saupoudrer de chapelure.
Cuire au four pendant 40-45 minutes. Laisser reposer 30 minutes avant de servir.