With the RenegadePublicTools comes a small program called wdump. It can open any w3d file and show it's data. It is a tree structure where the data is held by the leafs. It is a bit old though so sometimes it doesn't recognize a chunk and will just skip it.
I've given a shot at an importer that is capable of doing materials a few months ago. This is the best I could come up with so far:
http://www.makaveli.nl/rene/w3dimport37.ms.
It only works in renx as it applies w3d materials. It supports multimaterials, multi pass materials and multi stage materials. Just open the max script listener, then open the script. There's only an open button so I guess you can't do anything wrong. Open up a file and something like this will appear in the listener window (usa commanche):
Material #1
Pass 1, shader: Opaque
Pass 1, texture stage 1: NVMBuggy.tga
Material #2
Pass 1, shader: Alpha Blend
Pass 1, texture stage 1: AVComanche_p.tga
Material #3
Pass 1, shader: Opaque
Pass 1, texture stage 1: LAKEDUSK.tga
Pass 2, ambient: (color 255 255 255)
Pass 2, diffuse: (color 255 255 255)
Pass 2, specular: (color 255 255 255)
Pass 2, shader: Alpha Blend
Pass 2, texture stage 1: AVComanche.tga
Material #4
Pass 1, shader: Add
Pass 1, texture stage 1: EXTnkMzl01.tga
Material #5
Pass 1, ambient: (color 16 46 14)
Pass 1, diffuse: (color 45 45 45)
Pass 1, specular: (color 229 229 229)
Pass 1, shininess: 0.25
Pass 1, shader: Opaque
Pass 1, texture stage 1: Housecolor2.tga
The materials are applied as w3d materials to the correct faces. The properties listed are the non default properties of the materials.