Ooh, good catch. I didn't realise MNC of 0 was in use.

This is much better now, it will first choose an exact match of SIM card 1, then an exact match of SIM card 2, then the default 000+000 (which is still valid because there's no MCC of 000).

Technically it could still use a provided MCC + deafult MNC if the length of the two arrays was different, but that would be an invalid configuration anyway.

Looks good!