See also this reddit comment
The following is based on a decompiled version of Minecraft 1.9 using MCP 9.24 beta.
The method net.minecraft.world.WorldEntitySpawner.findChunksForSpawning(WorldServer, boolean, boolean, boolean) which spawns mobs does this in a square of 15 * 15 centered on the player. The chunks one "level" further (16 * 16) are only counted to determine the maximum number of mobs that can spawn. All the players can only mark a chunk once for spawning, however the outer chunks are not marked for spawning and can be counted multiple times for multiple players, increasing the maximum number of mobs that can spawn. So far the behaviour might be intended.
This creates a problem, if a chunk that is for one player in the 15 * 15 area (used for spawning) and for another player one of the outer chunks. If a chunk is already marked for spawning it is not counted as outer chunk anymore and will not increase the maximum number of mobs that can spawn.
This means that the number of mobs that can spawn now depends on the order of the players in the player list of the world, which makes things pretty inconsistent.