I think your main problem would be that pretty much all your fish compete for territories at the bottom of the tank. Sure, the occies are more around shells and the altolamprologus will be more around the rocks, but the all take up bottom tank space. The BN pleco will want a cave, and so will the petricolas. In a 29G you'll run out of space pretty fast - and no chance that will work when the fish get larger. A better choice than petricolas would be Paracyprichromis, since they will occupy the top level of the tank. That's where your 29G (compared to a 20G long) would come into its own!