Preheat oven to 140°C. Heat 2 tablespoons oil in a roasting pan over medium-high heat. Season lamb, then cook, turning, for 8-10 minutes until browned. Remove from pan.
Add carrot, onion and celery, then cook, stirring, for 3-4 minutes until softened. Add the garlic, thyme, rosemary and bay, then cook for a further 2 minutes or until fragrant.
Add flour and cook for 1 minute, then add the beer, scraping the bottom of the pan with a wooden spoon. Add stock and bring to a simmer. Return lamb shanks to the pan, then cover with baking paper and foil. Cook in the oven for 2 hours or until tender.
Meanwhile, to make the mieliepap, bring 1L (4 cups) water to the boil in a saucepan over medium-high heat. Add maize meal in a slow steady stream, then reduce heat to low and cook, stirring constantly, for 1 minute or until smooth.
Cover and cook for 30 minutes – add a little water if too dry. Stir in milk and 75g butter, then season and remove from heat.
Place the remaining 1 tablespoon oil and 25g butter in a frypan over medium-high heat. Add mushroom and cook for 3-4 minutes until golden. Remove from heat.
Transfer lamb to a plate and cover with foil, then strain the liquid into a clean saucepan over medium heat.
Cook for 4-5 minutes until reduced by half. Remove from heat and stir in mushroom.
Serve the lamb and mieliepap with the mushroom sauce and garnish with parsley.