The structure rt_ell_internal is used both for ellipses and spheres.
In case of UV coordinated calculations i saw some problems:
1) the function rt_ell_prep() correctly check whether the struct rt_db_internal contain a sphere or ellipse and setup the struct soltab accordingly.
2) The functions rt_ell_shot() and rt_sph_uv() do not make the same considerations, they simply convert the struct soltab::st_specific into a struct ell_specific which is not correct.
I modified the before mentioned functions so that they run the respective rt_sph_shot() and rt_sph_uv() when needed.