Server has the map, but doesn't interpret it, and therefore server doesn't know intended number of players. Not sure if I want to give the server that power. If server knew map's player count, then server could handle color changes accordingly.
Clients have the map, and interpret it already during the lobby to render the preview. Maybe clients should only be able to press ready when players have chosen exactly as many colors as the map calls for intended number of players.
This client-side change will at least guarantee that an 8p map isn't started with 7
This client-side change will clash with the timeout after ready because afkers will have wrong colors, thus never allowing good players to press ready, thus the timer-before-afkers-become-observers will never run.
-- Simon