I think the reason you might be getting confused is that there are really two types of multisig, raw multisig and P2SH (pay-to-script-hash) multisig. P2SH multisig is basically just hashing the actual scriptPubKey desired and putting the scriptPubKey in the scriptSig. This stack exchange questions explains them in more detail: What are the limits of m and n in m-of-n multisig addresses?.
I'm also trying to understand if a 3 of 3 transaction is supported as well.
Yes, you can do m-of-3 multisig transactions with both raw multisig and P2SH multisig.
the meaning of the parameters "2" in addmultisigaddress
The number provided is the m in the m-of-n. So if you want a 1-of-2, you do:
addmultisigaddress 1 '["1xy..", "1Jm..."]'
The BIP11 (accepted) proposal you mentioned just made raw multisig a standard type of transaction that is recognized and forwarded on by standard clients. BIP16 (https://github.com/bitcoin/bips/blob/master/bip-0016.mediawiki) proposes the P2SH addresses, which allow for much shorter scriptPubKey
s and support more types of multisig (e.g. 5-of-9, which you can't easily do with raw multisig because m-of-n multisigs with n > 3 are considered non-standard, as shown in the link in the first paragraph).
(e.g. 5-of-9, which you can't do with raw multisig because it would make the scriptPubKey too large).
I think that everything up to and including 20-of-20 multisig is valid. For example: https://blockchain.info/tx-index/49797406/0 – Nick ODell Jan 14 '15 at 16:06