So, if I understood it correctly, we can define 1 hidden_resource (HR) per "culture" or "area" instead of 1 per faction.
For example, we can define 1 HR for Iberia instead one for Portugal, 1 for Spain, 1 for Aragon and 1 for Moors.
In that case, we just need to divide the map in a certain amount of areas. So based on the list of settlement & regions made by Fair Prince, instead 31 HR we can only have 16 HR as per below for example:- british_isles - for Caernavon, Dublin, Edinburgh, Inverness, London, Nottingham, York and Bristol.
- scandinavia - for Bergen, Calmar, Lund, Oslo, Roskilde, Skara, Visby, Ribe and Sigtuna.
- iberia - for Barcelona, Burgos, Cordoba, Granada, Leon, Lisbon, Murcia, Palma, Pamplona, Badajos, Silves, Toledo, Valencia, Zaragoza, Coimbra, Guimaraes, Santiago de Compostela and Seville.
- western_europe - for Angers, Bordeaux, Caen, Clermont, Dijon, Lyon, Paris, Rennes, Reims, Toulouse, Arles, Arras (replaced by Rouen in the futur), Ghent, Leuven, Orleans, Poitiers and Toyes.
... and so on.
If we add also another HR per religions, that means 4 HR more (catholic, muslim, orthodox, pagan).
That means 20 HR instead 31.
20 areas HR + 4 religions HR + all possible combinations (1 HR associated or not with another - "and" & "and not" in the EDB) = at least 11 free HR for other uses.
Not bad, isn't it?