No reason you can't change this with XML. You could rename the Aztecs the Olmecs and the Zulu the Bantu and let them appear on Ancient starts. This modcomp is intended to empower xml, and the included xml is just an example of how to use it.
However, some incarnations have reset to the new era quite quickly. As soon as you try to select a civ from the initially era inappropriate list, it blinks and rejects your choice (simply puts you back to no choice having been made) and your next choice offering is the era appropriate list. I used a local variable to mediate between separate blocks to see if current era is No era or equal to start era, and returned invalidity based on that variable. Perhaps I should update, but its not that big an improvement.
bool CvCivilizationInfo::isAIPlayable() const
{ //tholish added the next four lines
if (GC.getGame().getCurrentEra()== NO_ERA)
{
if (GC.getGame().getStartEra() < getMinEra())
return false;
if (GC.getGame().getStartEra()> getMaxEra())
return false;
}
return m_bAIPlayable;
}