Lay the fishes in a shallow oven dish, make three slashes in the flesh of each one with a sharp knife and set aside.
For the marinade, pound the allspice berries, peppercorns and bay leaves in a pestle and mortar until fine. Mix in the cloves, sugar and honey.
Pick and chop the thyme leaves and chop the coriander leaves. Peel and finely chop the ginger and garlic, and finely chop the chillies.
Add the chopped herbs, chillies, garlic and ginger to the marinade and bash it all together, then tip into a jug.
Finely slice the spring onions and add the chopped green tops to the jug. Grate in the lime zest and add a drizzle of oil, a pinch of salt and the rum, if using. Mix well.
Pour the marinade over the fish and massage it in. (It’s a good idea to wear rubber gloves for this!) Leave in the fridge to marinate for at least 1 hour.
Meanwhile, prepare the salsa. Heat a griddle pan until searing hot, and cook the corn cobs for 5 to 10 minutes, turning every minute or two until the corn is evenly charred. Set them aside until they’re cool enough to handle.
Peel and chop the mango, finely slice the spring onions and add both to a serving bowl with the reserved white spring onion slices. Chop the coriander and tomatoes, and add to the bowl.
Carefully remove the corn kernels from the husk with a sharp knife and add to the serving bowl with the mango. Season to taste, grate in the lime zest and squeeze in the juice. Drizzle in a little olive oil, then toss to combine.
Preheat the oven to 220°C/425°F/gas 7. Place the fish in the pre-heated oven and bake for 15 to 20 minutes, until slightly charred and cooked. Serve each fish whole with the salsa on the side, and lime wedges for squeezing over.