You can easily do this in Terminal with the SetFile command:
To hide file extension
SetFile -a E <file>
To show file extension
SetFile -a e <file>
To recursively hide file extensions in a directory and all sub-directories:
(You can change the second * to a particular extension type if needed)
cd <path to directory>
find . -name "*.*" -exec SetFile -a E '{}' \;
To recursively show file extensions in a directory and all sub-directories:
(You can change the second * to a particular extension type if needed)
cd <path to directory>
find . -name "*.*" -exec SetFile -a e '{}' \;