Using perl-rename (which is one of the two tools that is commonly called rename; the other one uses a very different syntax and can't do this in one step):
rename -f 's/00 - ([^.]*).*/$1.ogg/' *.ogg
The -f or --force option makes rename overwrite any existing files.
The second part is a perl-style regular expression substitution. The basic syntax is s/replacethis/withthis/ The pattern to match -- 00 - ([^.]*).* -- will match all the *.ogg files with names like those in your question. 00 - -- obviously, that just matches the pattern at the beginning of each of the filenames. ([^.]*) is the meat of the regular expression. [^.] will match any single character that isn't a ., while * means 'any number of the previous thing', so [^.]* means 'any number of any characters that aren't .'. The parentheses mark out a capture group (more on that in a second). In regular expressions, . means 'any character' (if you want a literal dot on this side of the substitution you have to escape it, as in: \.), so the final .* means 'any number of any character'.
In the second part of the substitution command, $1 means 'the first capture group' -- that is, that which is contained within the first pair of parentheses (see? Told you I'd come back to it). The .ogg means a literal '.ogg' -- on this side of the substitution, you don't need to escape the dot.
So, roughly translated into English, 's/00 - ([^.]*).*/$1.ogg/' is telling rename to 'take "00 - ", followed by (any number of characters that aren't a dot), then any number of characters; and replace that with the characters contained within the brackets and ".ogg."'.
On some systems, perl-rename is called prename (when rename is taken by the aforementioned other program). On some systems it isn't available at all :(
For recursiveness, you can do one of the following:
shopt -s globstar ## assuming your shell is bash
rename 's/00 - ([^.]*).*/$1.ogg/' **/*.ogg
Or:
find . -name '*.ogg' -exec rename 's/00 - ([^.]*).*/$1.ogg/' {} +