MRT, auxilary texture's background is purple??

I’ve got some code doing something like you want (I use it to get a x/y pos, but the idea is more or less the same).

Setup:

self.pixel=VBase4()
pickingTex = Texture("picking_texture")
props = FrameBufferProperties()
props.setRgbaBits(16, 16, 0, 0)#you may want it as (32,0,0,0)
props.setSrgbColor(False)
pickingBuffer = base.win.makeTextureBuffer("picking_buffer",1, 1, pickingTex,to_ram=True,fbp=props)
pickingBuffer.setClearColor(VBase4())
pickingBuffer.setSort(10)
self.pickingPeeker = pickingTex.peek()
self.pickingCam = base.makeCamera(pickingBuffer) 
node = self.pickingCam.node() 
lens = node.getLens() 
lens.setNear(32.0)
lens.setFar(2**16)
lens.setFov(2.0)
cull_bounds = lens.makeBounds()
lens.setFov(0.4)
node.setCullBounds(cull_bounds)
#node.showFrustum() 
state_np = NodePath("picking_state")
state_np.setShader(Shader.load(Shader.SLGLSL, "pick_v.glsl","pick_f.glsl"),1)
state_np.setShaderInput("some_input", 3.14)
node.setInitialState(state_np.getState())

Getting the data from the buffer:

if base.mouseWatcherNode.hasMouse():
    mpos = base.mouseWatcherNode.getMouse()
    pos3d = Point3()
    nearPoint = Point3()
    farPoint = Point3()
    base.camLens.extrude(mpos, nearPoint, farPoint)
    self.pickingCam.lookAt(farPoint)

    if not self.pickingPeeker:
        self.pickingPeeker = self.pickingTex.peek()
    else: 
        self.pickingPeeker.lookup(self.pixel, .5, .5) 

After that self.pixel has the pixel under the mouse pointer.

There is also a full working example of ‘gl picking’ here on the forum:
www.panda3d.org/forums/viewtopic.php?p=92815#p92815