The category concept is supposed to represent how much it costs to train a player for a club at that level, rather than some kind of transfer fee. So average attendances doesn't really play into that.
Leagues get to set their own team's category, but there generally isn't an advantage to setting it artificially low as when a player moves to higher category club the compensation calculation is based on the average training costs of the two categories. So if you categorize your club too low, you'll reduce that average every time a player moves from your club to a better one.
Where it starts getting complicated is that MLS teams weren't part of the solidarity payment scheme, so the system and the categories are still a new concept. They only signed up recently when their young academy talent started moving to other countries for free. They still don't, however, pay any compensation for moves that take place within the MLS, so the penalty for ranking a team lower is less severe than other leagues.