There is a difference between language codes and country codes. "ja" is the language code for japanese (ISO 639-1), "jp" is the country code for japan (ISO 3166-1 alpha-2).
Wow, thanks for that. I knew about ISO 3166 but not 639 (and somehow just assumed Japanese would match Japan). This leads to the rather surprising result that TLDs use .jp for Japan yet subdomains use .ja for Japanese, e.g. ja.example.co.jp. I imagine most laypeople would not well understand the distinction and think "Oh why can't those IT people ever make things easy?"
Well, never mind anyway, because it's google.co.jp, but google.com.sg. IT people really are annoying! ;-)