If you can time it right, I would recommend just doing a transit or get your visa prior to arrival. I flew CPT-JNB-MPM, spent a day, and then flew out. The immigration issues were a pain. I went without a visa, so I had to do a VOA. There were about 8 of us and only 2 people processing them as a team. It took about 45 minutes. Cost was 420ZAR, 30EUR, or 32USD. I don't remember the MZN price. The sheet was dated 3/31. They were very confused on why I was only staying one day, but didn't ask for any paperwork about hotel or departing flight.
Immigration to leave again took about 45 minutes as there were flights on QR, SA, TK, and LM all leaving around the same time.