Right, unfortunately workarounds is probably the best approach. I've been dealing with MaxScript exposure in C++ a lot previously and it is just as involved/painful and also seems to be on its way out. I am considering of excluding MXS namespace/classes from Max.NET in near future as they take up (largely unused) space.
Return values would need to be handled same as parameters. I just opened MXS reference and I see that there actuall is a way to get objects by anim handle, which makes everything much easier:
In .NET: UIntPtr myHandle = global.Animatable.GetHandleByAnim( myMaterial or anything else );
In MXS: myMaterial = GetAnimByHandle myHandle
Haven't actually tried it, but should work theoretically.
Marsel Khadiyev (Software Developer, EPHERE Inc.)