Preheat the oven to 180°C / 350°F / Gas mark 4.
Grease a baking dish with a little butter and set aside.
Whisk the eggs in a large bowl.
Add the milk, tobasco sauce, ½ teaspoon of salt and some pepper whisk until blended.
Add the cubed bread and coat well.
Cover and refrigerate for 30 minutes.
Put a kettle of water on to boil.
Cook the spinach according to the instructions, drain rinse under cold water then press out the excess liquid and set aside.
Heat the oil in a large non-stick pan over medium heat.
Add the onion and pepper and cook, stirring often, until tender and golden, 4 to 5 minutes.
Add the mushrooms and garlic then stir to blend.
Reduce heat to medium-low, cover and cook until tender, about 5 minutes.
Uncover and increase heat to medium.
Cook, stirring, until any excess moisture from the mushrooms has evaporated and mushrooms begin to brown, about 5 minutes.
Add the spinach, a ¼ teaspoon of salt and another grind of pepper.
Cook, stirring, for 2 minutes.
Add the mushroom mixture and ½ of the cheese to the egg mixture, stir until blended.
Scrape into the prepared baking dish and sprinkle the remaining cheese evenly over the top.
Place the baking dish in a large deep sided baking tray, poor in the boiled water about halfway up the sides of the baking dish.
Bake until the pudding is set in the centre, 50 to 60 minutes.
Let cool slightly and serve hot or warm.