Bring a saucepan of water to the boil and cook the pasta according to the instructions on the packet, until al dente. Drain.
Preheat the oven to 200 C / Gas mark 6.
Put 1 tablespoon of butter in a large saucepan and melt over a medium heat. Once melted, add the mushrooms and cook until golden brown, then remove from the pan and set to one side.
Wipe the pan and melt the remaining butter. Add in 3/4 of the chopped spring onion and cook on a low heat until soft. Sprinkle in the flour and cook for one minute. Slowly pour in the milk and stir with a whisk or a fork until it creates a thick white sauce. Mix in the ham, mushrooms and 3/4 of the mature cheese. Mix and stir on the heat for a couple minutes.
Mix the pasta with the sauce until well coated. Spoon into a medium casserole dish, making sure it is spread evenly. Top with the remaining cheese, spring onion and a sprinkle of pepper.
Bake in the preheated oven for ten minutes, until the top is crispy and golden brown. Remove from the oven and serve on its own or with garlic bread.