First of all, on recent hardware it is possible to use 32fp precision on the texture_2D target with the ati_texture_float extension.
Second, I believe you do not fully understand the concept of mipmaps since you’re trying to fill a mipmap level other then zero with the original resolution of the texture at level 0.
A mipmap at level M has a resolution of (originalwidth>>M)x(originalwidth>>M).
I believe you were looking for the generate_mipmap_sgis extension which automatically generates the mipmaps at levels M and up when performing a copytex(sub)image at level M. It should be noted though that automatic mipmap generation is not hardware accelerated for fp textures (not on nvidia as far as i know anyway).
So it looks like the best way to do what you want to do, is to create a 32fp pbuffer with the original resolution of your texture and insert the following piece of code.
glTexParameteri(GL_TEXTURE_RECTANGLE_NV, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
for (int M=1;M<=nrmipmaplevels;++M)
By doing this, all pixels at level M contain the sum of 4 other pixels at level M-1 divided by 4.
You can easily recompensate after readout.