Billboard and scale

Hey,
Trying to get billboarding and scale work in the vertex shader

this makes the scale and billboard work, but the position is wrong

float4 wpos = mul (_Object2World, v.vertex);               
o.pos       = mul(UNITY_MATRIX_P, mul(UNITY_MATRIX_MV, float4(0,0,0,1)) - float4(wpos.x, wpos.y, wpos.z, 0));

this makes the position and billboard work, but not the scale

float4 wpos = v.vertex;               
o.pos       = mul(UNITY_MATRIX_P, mul(UNITY_MATRIX_MV, float4(0,0,0,1)) - float4(wpos.x, wpos.y, wpos.z, 0));

For anyone else who is searching for this answer, it was answered on this stackoverflow question:

                float4 BillboardVertex = mul(UNITY_MATRIX_P,
                    mul(UNITY_MATRIX_MV, float4(0.0, 0.0, 0.0, 1.0))
                    + float4(v.vertex.x, v.vertex.y, 0.0, 0.0)
                    * float4(
                        length(unity_ObjectToWorld._m00_m10_m20),
                        length(unity_ObjectToWorld._m01_m11_m21), 1.0, 1.0));

At last this worked for me.