Laver les épinards sous l'eau froide et les égoutter légèrement. Déposer les épinards dans un poêlon, couvrir et cuire à feu moyen de 3 à 4 minutes. Bien égoutter et réserver.
Beurrer un plat allant au four d'une capacité d'environ 1,5 L (6 tasses). Disposer le tiers des pommes de terre dans le fond du plat en les faisant se chevaucher.
Répartir la moitié des oignons et tous les épinards. Disposer un autre tiers des pommes de terre, le reste des oignons et le jambon. Recouvrir du reste des pommes de terre.
Dans une petite casserole, chauffer la crème à feu moyen jusqu'à ce qu'elle soit bien chaude, mais sans bouillir. Réserver 60 ml (1/4 de tasse) des fromages râpés.
Petit à petit, ajouter le reste du fromage à la sauce, en remuant pour bien incorporer. Attendre que le fromage soit bien fondu avant d'en ajouter. Ajouter la muscade. Saler et poivrer.
Verser la sauce aux fromages sur la préparation aux pommes de terre. Cuire au four à couvert pendant 1 heure 15 minutes ou jusqu'à ce que les pommes de terre soient tendres.
Répartir le reste du fromage et poursuivre la cuisson, à découvert, pendant 15 minutes ou jusqu'à ce que le fromage soit doré.