64 pixels will result in almost 17 rows of your tiled screen. Seems like they would be a bit small.
In this post, you can see my screen has about ten tiles vertically.
My current project has like 6:
Best thing is to build it and scale it dynamically like you said- I calculate the scale based on the detected screen resolution. This bit of code show how the scale controls the size and mx,my tracks the background against foreground. A parallax effect can be achieved with an overlay which moves proportionally with background but slower.
Rect.Initialize((c*128-mx)*scale, (l*100-my+10)*scale, (c*128-mx+128)*scale, (l*100-my+110)*scale) Canvas1.DrawBitmapRotated(greenbutton,Null,Rect,0)
PPI is irrelevant as it will differ based actual real world screen size.