The U.S. Library of Congress is the registration authority for ISO 639-2 (referred to as ISO 639-2/RA). As registration authority, the LOC receives and reviews proposed changes; they also have representation on the ISO 639-RA Joint Advisory Committee responsible for maintaining the ISO 639 code tables.
Work was begun on the ISO 639-2 standard in 1989, due to the fact that the ISO 639-1 standard, which gives two-letter codes for languages, would not be able to accommodate a sufficient number of languages. The ISO 639-2 standard was first released in 1998.
While most languages are given one code by the standard, twenty of the languages described have two three-letter codes, a "bibliographic" code (ISO 639-2/B), which is derived from the English name for the language and was a necessary legacy feature, and a "terminological" code (ISO 639-2/T), which is derived from the native name for the language. Each of these twenty languages is also included in the ISO 639-1 standard. (There were 22 B codes; scc and scr are now deprecated.)
In addition, there are codes for special situations:
For a definition of macrolanguages and collective languages see 
Collective languages and their ISO 639-2 codes are:
Bihari (bih) is marked as collective but on the other hand has an ISO 639-1 code (bh) which should only be for individual languages. The reason is that individual Bihari languages received an ISO 639-2 code, which makes Bihari a language family for the purposes of ISO 639-2, but a single language for the purposes of ISO 639-1.
ISO 639-3 uses ISO 639-2/T.