Heat the olive oil in a large, ovenproof casserole pan and add the onion, pepper and carrot. Fry gently for 10 minutes until softened.
Add the crushed garlic, tomato puree, chipotle chilli paste, cumin, coriander, smoked paprika, cinnamon and chilli powder and cook for a couple of minutes while stirring.
Add the soy sauce, dark brown sugar, cocoa powder, tinned tomatoes, water, black beans, kidney beans, pinto beans, frozen sweetcorn, vegetable stock and some salt and pepper.
Bring the mixture up to a simmer and allow to cook, stirring it every now and again, for half an hour. Taste and add more seasoning as required. (At this point the chilli is ready to be eaten if you aren't making the topping.)
Preheat the oven to 200°C/400°F/gas mark 6.
Mix the ground flaxseed with the water and set aside until it goes gloopy.
In a large bowl, whisk together the cornmeal, plain flour, baking powder, bicarbonate of soda and salt.
In a jug, whisk together the non-dairy milk, maple syrup, light brown soft sugar, cider vinegar and melted vegan block butter.
Pour the wet ingredients into the dry along with the flax egg and whisk until no dry lumps remain but be careful not to over-beat the mixture, Fold through the jalapenos if using.
Dollop the cornbread mixture over the top of the chilli and spread it level. Bake for 25-30 minutes until the cornbread is golden and a skewer inserted into the centre comes out clean.