Preheat the oven to 200 degrees C. Put the potatoes in a saucepan of lightly salted water. Bring to the boil, then reduce the heat and cook for 15–20 minutes until tender. Cook the cauliflower in a steamer, set over the potatoes, for 10 minutes, or in a separate pan of boiling water.
Meanwhile, put the spinach in a saucepan, cover and cook over a low heat for 5 minutes until thawed. Tip the spinach into a colander and press down with a vegetable masher to squeeze out any excess liquid. Roughly chop the spinach and season with salt, pepper and nutmeg.
Drain the potatoes, then mash with the milk and butter. Spread half the mashed potatoes in a 1 litre ovenproof baking dish or six individual dishes. Layer the spinach on top of the potatoes.
Purée the cauliflower in a blender or food processor. Add the eggs and the remaining mashed potatoes and check the seasoning. Spread this mixture over the spinach layer.
Sprinkle the top with grated cheese, then bake for 30 minutes (20 minutes for individual dishes) until golden. Serve hot, garnished with sprigs of parsley.