I understand where you're coming from, and you're right, you cannot do that in XSI at the moment because the required nodes just aren't there......yet.
In order to do a truly accurate falloff in the material shader, you need a material shader that understands what you're trying to achieve. Such a shader is not difficult to write, but somebody needs to take the time to write it. Same goes for lights and cameras.
In your case, you can use the incidence shader to extract the ray angle between the light and/or camera with whatever target it hits. This can be used to modulate the intensity of the surface. If you need more information about start and end points of rays, or normal info, you can use the scalar_state and vector_state nodes to get that. You won't be able to modulate the reflection depth because that requires casting a secondary ray from the material along the required path. There aren't any nodes to do that yet. But you can modulate the intensity of the returned reflected color using passes or the compositor to put humpty dumpty together again.
In the meantime, you'll have to approximate. Be careful when using data from the scene in the rendertree because mental ray does all it's math in it's own "internal" coordinate system that does not necessarily match XSI's global coordinate space. mental leaves internal space undefined, therefore it changes depending on which context you're using information. In most cases, internal space is the same as world space, but not always.
Matt
Matt Lind
Animator / Technical Director
Softimage certified instructor:
Softimage|3D
Softimage|XSI
speye_21@hotmail.com