Sorry I missed your post. The only value exposed to us uses 1.5x the number of default players but the part where it actually decides the number of minor civs is pulled form the DLL (PlayerManager and StartPositioner methods). I never bothered to count with with extreme settings like 4 civs on a map made for 12
The spacing between players was reduced a couple version ago since people were missing civs. When you have fewer that the default number of civs it will space them out more but I capped the max distance at 16 tiles. If you only play games with very few players you can extend it more. My base rule is 11 tiles +/- the difference between the actual number of players and the default number for that map size. So 11 + 8 (12 default - 4 actual) in your example would be 19 tiles but it would be capped to 16 by my code. The default game buffer was 5 tiles +2 if you had fewer players than the default. The problem here is that an excessive buffer is likely to result in some players missing depending on the actual map so I capped it at a number that worked with all of my testing.
If you want to play around with it here's the code you need to find and change in AssignStartingPlots.lua:
Code:
if iMaxStart > 16 then
iMaxStart = 16;
elseif iMaxStart < 8 then
iMaxStart = 8;
end
Change it to this:
Code:
if iMaxStart < 8 then
iMaxStart = 8;
end
Or just remove them entirely if you like living dangerously