As mentioned by JustinEU4, degradation of privacy for one party also degrades privacy for others. The effect is typically small, but if there is a lot of degradation, there comes a threshold effect.
This can be understood intuitively with a simple, contrived, example:
Alice, Bob, and Charlie each write their names on a piece of paper, fold it, and put it in a jar. Eve comes in, and tries to work out which piece of paper reads "Charlie". If the papers are well folded, etc, the probability to get it right is 1/3. This'd be the same if Eve was trying to work out which paper is Alice's, or Bob's.
Now, imagine Alice decides to forego her anonymity, and points out which paper is hers. Now Eve can guess at Charlie's paper with 1/2 probability, though Charlie mixed with 2 others. If Bob now also decides to point out which paper is his, then Charlie is now deanonymized, despite mixing with others.
I concur with JustinEU4's pointer the research from https://lab.getmonero.org/ to get more details about this.
As for the more prosaic rules in current monero, the minimum mixin is now 2 (so you mix with two others), unless there are less than 2 other outputs for at least one of your inputs's amounts. Since mixin 2 would not be possible in that case, mixin 0 is allowed as a special case, so you don't get stuck with unspendable monero. In that special case, only one mixable input is allowed in the transaction.
There is no arbitrary maximum mixin, but it probably breaks over 2^31-1 as an int is used. There are practical limits though: you want to find that many other outputs of the same amount on the blockchain, and you want the resulting transaction to be no larger than the current block size limit so it can be included in a block.