I prefer to 16 for 11v11, but my son's team has 18.
What happened was couple of players could not play or played less than 5 minutes at the game of all 18 players showed up. Obviously, 7 subs were too much.
If many got injured, or absent whatever reason, I think coach just need to invite guest players from lower tier team or younger age team in the club.
It is "pay to play", but generally speaking, players with "financial aid" play relatively longer time, since only good players can get the "financial aid" in the top team of the older age group. So, our case, two full paid stay bench almost all the time, and three players with "financial aid" play full minutes. It seems like the families of the two bench players donate their money for the "financial aid". I don't blame good players with financial aid playing longer time, but I think full paid players should play reasonable minutes at the "pay to play" model. I think the club should manage the roster size for everyone to play reasonable minutes even in the older age group. Many people says "Look at pro or college. Sub players might not play. It is common for high competitive environment." But they are not in "pay to play". If the coach believes the players are behind and he would not like to give them playing time, do not add them in the roster at the first place.