You can have up to 14 BGMaps:
http://www.planetvb.com/modules/dokuw ... oku.php?id=background_mapThe way you use CharSegs is really wasteful, What keeps you from using one segment for different "sprites"?
Anyway, text should be written to BGMaps dynamically and directly by a text out function, so you won't need any extra CharSeg Space. I assume CharSeg 3 holds your font?
For your interest only (the following is not absolutely necessary since 4 segments are usually enough if used wisely), if you want to use the CharSeg memory really effectively, you could even fill it dynamically and make it hold only the chars you need at a time. The VBJAEngine has such functionality for example. For better understanding, here is an example of how Wario is animated in VB Wario Land: Instead of loading all animation frames for Wario into the character memory and load one after the other into a BGMap, the BGMap points at a fixed position of the character memory instead, and the program simply keeps loading the currently needed animation frame to that memory position. So you need to have only one Wario sprite in character memory.