Bloat, as such, is a symptom, just like head-ache or dizziness. It can be caused by many different things - internal parasites, bacterial infection in the guts, etc, etc.
There are several factors that affect fish's health:
A good, varied diet is best. Varied means feeding different food types, so that the fish gets all the necessary nutrients and the right mix of food and in this case sufficient greens and natural fibres.
Feeding fresh veg. may be an idea. Spinach, lettuce and perhaps something like zucchini (courgette for us in the UK). You may need to boil it a little bit before the fish will take it, to make it a little softer. I have no experience feeding Malawi's with this type of food, but bigger pleco's will eat raw courgette, whilst smaller ones need it boiled soft.
High protein foods should be used in moderation to fish that generally eat mostly "aufwuchs".
2. Water quality.
"dirty" water is often a factor in the health of fish - for every one fish that dies from bad food, there's probably 5 or so that die from water being dirty. Water changes and good filtration help here. Check your nitrate levels if you haven't done so already - and make sure your test actually works, because I've had an old test-kit that had "expired", it gave no reading at all for water that apparently wasn't very clean... Got another test-kit and it showed (as expected) quite a high reading...