1/ The api call is: get_string_manager()->get_list_of_languages() which returns array of 3-letter codes with localised names of languages
2/ Strings are stored in /lang/en/iso6392.php file
3/ each translation may state own languages by adding $string['iso6392'] = 'eng' into own langconfig.php
The list of languages in ISO 6392-3 is too big for practical reasons (imagine list of languages that contains 8000 entries).