If you want to keep custom normals, the script has to copy the entire object and delete the unwanted faces for each element. It's a particular case tho.
No need for scripts, convert it into editable mesh and then use the explode function. Set it to 180, and choose objects. It even asks you for a base name, which it will use for the resulting objects along with an ascending number suffix. Afterwards, just convert back into editable poly. I never knew this until a colleague…
I'm resurrecting this thread, as I just want to add something on: using monster's script, I had a huge increase in performance compared to meshop.getElementsUsingFace. For what reason that is, i don't really know, but here's a little snippet of code that will give you an array of facelists containing elements of the mesh:…